<?php
/**
* Controlador que maneja las acciones del administracion de sucursales
*/
class SucursalController extends Controller{
  
  
   public function actionSucursales(){
	 $this->render('sucursales');
     
   }
   
   /*
	*Accion alta sucursal
	*/
   public function actionAltasucursal(){
	  $sistema=$this->AccesoSistema();
	  $model=new SucursalForm;
	  if(isset($_POST['ajax']) && $_POST['ajax']==='sucursal-form')
	  {
		echo CActiveForm::validate($model);
		Yii::app()->end();
	  }
	  if(isset($_POST['SucursalForm']))
	  {
	    $model->attributes=$_POST['SucursalForm'];
		if($model->validate()){
			//variables de sucursales
			$numeroderegistro=$sistema->agregarSucursal($model->nombre,$model->direccion,$model->radio_accion,$model->telefono,$model->especialidad);
			if(!$numeroderegistro==false){
			   //sucursal registrada
			    Dialogo::mensaje('Confirmacion de Registro', '<b>N° Sucursal:</b> '.$numeroderegistro.'<br><b> Nombre:</b> '.$model->nombre.'<br> <b>Direccion:</b> '.$model->direccion,'<br> <b>Telefono:</b> '.$model->telefono);
			}
			else{
				//error al crear sucursal
				Dialogo::mensaje('Error', 'Error al registrar sucursal');
			}
			$this->redirect($this->createUrl('sucursales'));
		}
	 
	 }
	 $this->render('altasucursal',array('model'=>$model));
     
   }
   
   /*
	*Accion eliminar sucursal
	*/
   public function actionEliminarsucursal(){
	  $sistema=$this->AccesoSistema();
	  $model=new SucursalForm;
	  if(isset($_POST['buscar'])){
	     if(isset($_POST['valor'])and !$_POST['valor']==''){
				$resultado=$sistema->eliminarSucursal($_POST['valor'],$_POST['tipo']);	
			 if($resultado==true){
			    $sucursal=$sistema->get_sucursal();
				$model->nro_sucursal=$sucursal->get_id_sucursal();
				$model->nombre=$sucursal->get_nombre();
				$model->direccion=$sucursal->get_direccion();
				$model->radio_accion=$sucursal->get_radio_de_accion();
				$model->telefono=$sucursal->get_telefono();
				$model->especialidades=$sucursal->get_especialidades();
				}
			else{
				//mensaje error sucursal no encontrada en la base de datos
			     Dialogo::mensaje('Busqueda', 'Sucursal No Encontrada');		
				}
			}
	   }
	 if(isset($_POST['eliminar'])){ //si se presiono boton eliminar 
			$resultadoEliminar=$sistema->confirmarEliminarSucursal();
			if($resultadoEliminar){
			   //usuario eliminado correctamente
			    Dialogo::mensaje('Confirmacion', 'Sucursal eliminada correctamente');
			}
			else{
			   //error al eliminar sucursal
			     Dialogo::mensaje('Error', 'Error al eliminar sucursal');
			}
			$this->redirect($this->createUrl('sucursales'));
	}	 
	 $this->render('eliminarsucursal',array('model'=>$model));
   }
   
   
   /*
	*Accion modificar sucursal
	*/
   public function actionModificarsucursal(){
	  $sistema=$this->AccesoSistema();
	  $model=new ModificarSucursalForm;
	  if(isset($_POST['buscar'])){
	     if(isset($_POST['valor'])and !$_POST['valor']==''){
				$resultado=$sistema->modificarSucursal($_POST['valor'],$_POST['tipo']);	
			 if($resultado==true){
			    $sucursal=$sistema->get_sucursal();
				$model->nro_sucursal=$sucursal->get_id_sucursal();
				$model->nombre=$sucursal->get_nombre();
				$model->direccion=$sucursal->get_direccion();
				$model->radio_accion=$sucursal->get_radio_de_accion();
				$model->telefono=$sucursal->get_telefono();
				$model->especialidad=$sucursal->get_especialidades_texto();
				}
			else{
				//mensaje error usuario no encontrado en la base de datos
			      Dialogo::mensaje('Busqueda', 'Sucursal No Encontrada');		
				}
			}
	   }
	   if(isset($_POST['modificar'])){ //se presiono boton guardar cambios
				$model->attributes=$_POST['ModificarSucursalForm'];
				if($model->validate()){
					 $resultadomodificar=$sistema->set_cambios_sucursal($model->nombre, $model->direccion,$model->radio_accion, $model->telefono,$model->especialidad);
					 if($resultadomodificar==true){	
						Dialogo::mensaje('Confirmacion', 'Datos guardados correctamente');
					}
					else{
						Dialogo::mensaje('Mensaje', 'Error al guardar los datos');
					}
				}
				$this->redirect($this->createUrl('sucursales'));
				
		}
		$this->render('modificarsucursal',array('model'=>$model));
   }
   
   
   /*
	*Filtro que permite controlar el acceso de usuarios
	*/
	public function filters()
    {
		return array(
            'accessControl',
        );
    }
	
	/*
	*Reglas de Acceso que deniegan o permiten ciertas acciones
	*/
   public function accessRules()
   {
		return array(
		array('allow', //acceso por parte de los administradores a las acciones
		'actions'=>array('sucursales','altasucursal','eliminarsucursal','modificarsucursal'),
		'roles'=>array('admin'),
		),
		array('deny',//empleado no puede realizar las siguientes acciones
		'actions'=>array('sucursales','altasucursal','eliminarsucursal','modificarsucursal'),
		'roles'=>array('empleado'),
		),
		array('deny',//deniego toda accion a usuario no autenticado
		'users'=>array('*'),
		),
		);
   }
 }
?>